package com.view;

import com.model.Perpustakaan;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.IOException;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.*;

public class FrameUtama extends JFrame implements ActionListener {

    private JMenuBar menuBar;
    private JMenu menuPublikasi;
    private JMenu menuAnggota;
    private JMenu menuPinjaman;
    private JMenuItem menuTambahPublikasi;
    private JMenuItem menuTambahAnggota;
    private JMenuItem menuTambahPinjaman;
    private JMenuItem menuBacaFilePublikasi;
    private JMenuItem menuBacaFileAnggota;
    private JMenuItem menuBacaFilePinjaman;
    private JMenuItem menuSimpanFilePublikasi;
    private JMenuItem menuSimpanFilePinjaman;
    private JMenuItem menuSimpanFileAnggota;

    public FrameUtama() {
        inisialisasi();
    }

    public void inisialisasi() {
        this.setSize(800, 700);
        this.setTitle("Perpustakaan");
        setDefaultCloseOperation(EXIT_ON_CLOSE);

        menuBar = new JMenuBar();
        setJMenuBar(menuBar);
        menuPublikasi = new JMenu("Publikasi");
        menuBar.add(menuPublikasi);
        menuAnggota = new JMenu("Anggota");
        menuBar.add(menuAnggota);
        menuPinjaman = new JMenu("Pinjaman");
        menuBar.add(menuPinjaman);

        menuTambahPublikasi = new JMenuItem("Tambah Publikasi");
        menuTambahPublikasi.addActionListener(new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent e) {
                menuTambahPublikasiAction();
            }
        });
        menuPublikasi.add(menuTambahPublikasi);

        menuSimpanFilePublikasi = new JMenuItem("Simpan Publikasi");
        menuSimpanFilePublikasi.addActionListener(new ActionListener() {

            public void actionPerformed(ActionEvent e) {

                try {
                    menuSimpanFilePublikasiAction();
                } catch (IOException ex) {
                    Logger.getLogger(FrameUtama.class.getName()).log(Level.SEVERE, null, ex);
                }
            }
        });
        menuPublikasi.add(menuSimpanFilePublikasi);

        menuBacaFilePublikasi = new JMenuItem("Baca Publikasi");
        menuBacaFilePublikasi.addActionListener(new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent e) {
                menuBacaFilePublikasiAction();
            }
        });
        menuPublikasi.add(menuBacaFilePublikasi);

        menuTambahAnggota = new JMenuItem("Tambah Anggota");
        menuTambahAnggota.addActionListener(new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent e) {
                menuTambahAnggotaAction();
            }
        });
        menuAnggota.add(menuTambahAnggota);

        menuSimpanFileAnggota = new JMenuItem("Simpan Anggota");
        menuSimpanFileAnggota.addActionListener(new ActionListener() {

            public void actionPerformed(ActionEvent e) {
                try {
                    menuSimpanFileAnggotaAction();
                } catch (IOException ex) {
                    Logger.getLogger(FrameUtama.class.getName()).log(Level.SEVERE, null, ex);
                }
            }
        });
        menuAnggota.add(menuSimpanFileAnggota);


        menuBacaFileAnggota = new JMenuItem("Baca Anggota");
        menuBacaFileAnggota.addActionListener(new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent e) {
                menuBacaFileAnggotaAction();
            }
        });
        menuAnggota.add(menuBacaFileAnggota);

        menuTambahPinjaman = new JMenuItem("Tambah Pinjaman");
        menuTambahPinjaman.addActionListener(new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent e) {
                menuTambahPinjamanAction();
            }
        });
        menuPinjaman.add(menuTambahPinjaman);

        menuSimpanFilePinjaman = new JMenuItem("Simpan Pinjaman");
        menuSimpanFilePinjaman.addActionListener(new ActionListener() {

            public void actionPerformed(ActionEvent e) {
                try {
                    menuSimpanFilePinjamanAction();
                } catch (IOException ex) {
                    Logger.getLogger(FrameUtama.class.getName()).log(Level.SEVERE, null, ex);
                }
            }
        });
        menuPinjaman.add(menuSimpanFilePinjaman);

        menuBacaFilePinjaman = new JMenuItem("Baca Pinjaman");
        menuBacaFilePinjaman.addActionListener(new ActionListener() {

            public void actionPerformed(ActionEvent e) {
                menuBacaFilePinjamanAction();
            }
        });
        menuPinjaman.add(menuBacaFilePinjaman);
    }

    public void menuTambahPublikasiAction() {
        JFrame testFrame_1 = new JFrame();
        PanelTambahPublikasi testPanel_1 = new PanelTambahPublikasi();
        testFrame_1.getContentPane().add(testPanel_1);
        testFrame_1.setSize(500, 400);
        testFrame_1.setVisible(true);
        testFrame_1.setTitle("Perpustakaan Universitas Sanata Dharma");
    }

    public void menuSimpanFilePublikasiAction() throws IOException {
        Perpustakaan.simpanFilePublikasi();
    }

    public void menuBacaFilePublikasiAction() {
        JFrame testFrame = new JFrame();
        PanelLihatPublikasi testPanel = new PanelLihatPublikasi();
        testFrame.getContentPane().add(testPanel);
        testFrame.setSize(500, 400);
        testFrame.setVisible(true);
        testFrame.setTitle("Panel Lihat Publikasi");
    }

    public void menuTambahAnggotaAction() {
        JFrame testFrame_3 = new JFrame();
        PanelTambahAnggota testPanel_3 = new PanelTambahAnggota();
        testFrame_3.getContentPane().add(testPanel_3);
        testFrame_3.setSize(500, 400);
        testFrame_3.setVisible(true);
        testFrame_3.setTitle("Perpustakaan Universitas Sanata Dharma");
    }

    public void menuSimpanFileAnggotaAction() throws IOException {
        Perpustakaan.simpanFileAnggota();
    }

    public void menuBacaFileAnggotaAction() {
        JFrame testFrame = new JFrame();
        PanelLihatAnggota testPanel = new PanelLihatAnggota();
        testFrame.getContentPane().add(testPanel);
        testFrame.setSize(500, 400);
        testFrame.setVisible(true);
        testFrame.setTitle("Panel Lihat Anggota");
    }

    public void menuTambahPinjamanAction() {
        JFrame testFrame_2 = new JFrame();
        PanelTambahPinjaman testPanel_2 = new PanelTambahPinjaman();
        testFrame_2.getContentPane().add(testPanel_2);
        testFrame_2.setSize(500, 400);
        testFrame_2.setVisible(true);
        testFrame_2.setTitle("Perpustakaan Universitas Sanata Dharma");
    }

    public void menuSimpanFilePinjamanAction() throws IOException {
        Perpustakaan.simpanFilePinjaman();
    }

    public void menuBacaFilePinjamanAction() {
        JFrame testFrame = new JFrame();
        PanelLihatPinjaman testPanel = new PanelLihatPinjaman();
        testFrame.getContentPane().add(testPanel);
        testFrame.setSize(500, 400);
        testFrame.setVisible(true);
        testFrame.setTitle("Panel Lihat Pinjaman");
    }

    public void actionPerformed(ActionEvent e) {
    }
}
